/**
 * 系统管理--用户管理的单例对象
 */
var MgrUser = {
	id : "managerTable",// 表格id
	seItem : null, // 选中的条目
	table : null,
	layerIndex : -1,
	deptid : 0
};

/**
 * 初始化表格的列
 */
MgrUser.initColumn = function() {
	var columns = [ {
		field : 'selectItem',
		radio : true
	}, {
		title : 'id',
		field : 'ID',
		visible : false,
		align : 'center',
		valign : 'middle'
	}, {
		title : '账号',
		field : 'ACCOUNT',
		align : 'center',
		valign : 'middle',
		sortable : true
	}, {
		title : '姓名',
		field : 'NAME',
		align : 'center',
		valign : 'middle',
		sortable : true
	}, {
		title : '性别',
		field : 'SEXNAME',
		align : 'center',
		valign : 'middle',
		sortable : true
	}, {
		title : '角色',
		field : 'ROLENAME',
		align : 'center',
		valign : 'middle',
		sortable : true
	}, {
		title : '部门',
		field : 'DEPTNAME',
		align : 'center',
		valign : 'middle',
		sortable : true
	}, {
		title : '邮箱',
		field : 'EMAIL',
		align : 'center',
		valign : 'middle',
		sortable : true
	}, {
		title : '电话',
		field : 'PHONE',
		align : 'center',
		valign : 'middle',
		sortable : true
	}, {
		title : '创建时间',
		field : 'CREATETIME',
		align : 'center',
		valign : 'middle',
		sortable : true
	}, {
		title : '有效时间',
		field : 'EXPDATE',
		align : 'center',
		valign : 'middle',
		sortable : true
	}, {
		title : '状态',
		field : 'STATUSNAME',
		align : 'center',
		valign : 'middle',
		sortable : true
	} ];
	return columns;
};

/**
 * 检查是否选中
 */
MgrUser.check = function() {
	var selected = $('#' + this.id).bootstrapTable('getSelections');
	if (selected.length == 0) {
		Feng.info("请先选中表格中的某一记录！");
		return false;
	} else {
		MgrUser.seItem = selected[0];
		return true;
	}
};

/**
 * 点击添加管理员
 */
MgrUser.openAddMgr = function() {
	var index = layer.open({
		type : 2,
		title : '添加管理员',
		area : [ '800px', '560px' ], // 宽高
		fix : false, // 不固定
		maxmin : true,
		content : Feng.ctxPath + '/mgr/user_add'
	});
	this.layerIndex = index;
};

/**
 * 点击修改按钮时
 * 
 * @param userId
 *            管理员id
 */
MgrUser.openChangeUser = function() {
	if (this.check()) {
		var index = layer.open({
			type : 2,
			title : '编辑管理员',
			area : [ '800px', '450px' ], // 宽高
			fix : false, // 不固定
			maxmin : true,
			content : Feng.ctxPath + '/mgr/user_edit/' + this.seItem.ID
		});
		this.layerIndex = index;
	}
};

/**
 * 点击角色分配
 * 
 * @param
 */
MgrUser.roleAssign = function() {
	if (this.check()) {
		var index = layer.open({
			type : 2,
			title : '角色分配',
			area : [ '300px', '400px' ], // 宽高
			fix : false, // 不固定
			maxmin : true,
			content : Feng.ctxPath + '/mgr/role_assign/' + this.seItem.ID
		});
		this.layerIndex = index;
	}
};

/**
 * 删除用户
 */
MgrUser.delMgrUser = function() {
	if (this.check()) {

		var operation = function() {
			var userId = MgrUser.seItem.ID;
			var ajax = new $ax(Feng.ctxPath + "/mgr/delete", function() {
				Feng.success("删除成功!");
				MgrUser.table.refresh();
			}, function(data) {
				Feng.error("删除失败!" + data.responseJSON.message + "!");
			});
			ajax.set("userId", userId);
			ajax.start();
		};

		Feng.confirm("是否删除用户" + MgrUser.seItem.ACCOUNT + "?", operation);
	}
};

/**
 * 冻结用户账户
 * 
 * @param userId
 */
MgrUser.freezeAccount = function() {
	if (this.check()) {
		var userId = this.seItem.ID;
		var ajax = new $ax(Feng.ctxPath + "/mgr/freeze", function(data) {
			Feng.success("冻结成功!");
			MgrUser.table.refresh();
		}, function(data) {
			Feng.error("冻结失败!" + data.responseJSON.message + "!");
		});
		ajax.set("userId", userId);
		ajax.start();
	}
};

/**
 * 解除冻结用户账户
 * 
 * @param userId
 */
MgrUser.unfreeze = function() {
	if (this.check()) {
		var userId = this.seItem.ID;
		var ajax = new $ax(Feng.ctxPath + "/mgr/unfreeze", function(data) {
			Feng.success("解除冻结成功!");
			MgrUser.table.refresh();
		}, function(data) {
			Feng.error("解除冻结失败!");
		});
		ajax.set("userId", userId);
		ajax.start();
	}
}

/**
 * 重置密码
 */
MgrUser.resetPwd = function() {
	if (this.check()) {
		var userId = this.seItem.ID;
		parent.layer.confirm('是否重置密码为111111？', {
			btn : [ '确定', '取消' ],
			shade : false
		// 不显示遮罩
		}, function() {
			var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function(data) {
				Feng.success("重置密码成功!");
			}, function(data) {
				Feng.error("重置密码失败!");
			});
			ajax.set("userId", userId);
			ajax.start();
		});
	}
};

MgrUser.resetSearch = function() {
	$("#name").val("");
	$("#beginTime").val("");
	$("#endTime").val("");

	MgrUser.search();
}

MgrUser.search = function() {
	var queryData = {};

	queryData['deptid'] = MgrUser.deptid;
	queryData['name'] = $("#name").val();
	queryData['beginTime'] = $("#beginTime").val();
	queryData['endTime'] = $("#endTime").val();

	MgrUser.table.refresh({
		query : queryData
	});
}

MgrUser.onClickDept = function(e, treeId, treeNode) {
	MgrUser.deptid = treeNode.id;
	MgrUser.search();
};

$(function() {
	var defaultColunms = MgrUser.initColumn();
	var table = new BSTable("managerTable", "/mgr/list", defaultColunms);
	table.setPaginationType("client");
	MgrUser.table = table.init();
	var ztree = new $ZTree("deptTree", "/dept/tree");
	ztree.bindOnClick(MgrUser.onClickDept);
	ztree.init();
});
